#include <stdio.h>

/************************************************************************/
/*                                                                      */
/************************************************************************/
typedef unsigned short  u16;
typedef unsigned int    u32;

/************************************************************************/
/*                                                                      */
/************************************************************************/
#define swab16(x) ((u16)(				\
	(((u16)(x) & (u16)0x00ffU) << 8) |			\
	(((u16)(x) & (u16)0xff00U) >> 8)))

#define swab32(x) ((u32)(				\
	(((u32)(x) & (u32)0x000000ffUL) << 24) |		\
	(((u32)(x) & (u32)0x0000ff00UL) <<  8) |		\
	(((u32)(x) & (u32)0x00ff0000UL) >>  8) |		\
	(((u32)(x) & (u32)0xff000000UL) >> 24)))
    
/************************************************************************/
/*                                                                      */
/************************************************************************/

/****************************/

int main(int argc, char* argv[])
{
    u16 u16val = 0x5f3b;
    u32 u32val = 0x5f3b3a61;

    printf("u16val 0x%x\n", u16val);
    printf("swab16 0x%x\n", swab16(u16val)); 

    printf("u32val 0x%x\n", u32val);
    printf("swab32 0x%x\n", swab32(u32val)); 
    
    return 0;
}